#include <bits/stdc++.h>

using namespace std;

void recoverRotatedSortedArray(vector<int> &nums)
{
    // write your code here
    //sort(nums.begin(), nums.end());
    if(nums.size() <= 1)
        return;
    int min = nums[0];
    for(int i = 1; i < nums.size(); i++)
        if(nums[i] < min)
            min = nums[i];
    while(nums[0] > min){
        nums.push_back(nums[0]);
        nums.erase(nums.begin());
    }
}

int main()
{
    vector<int> nums = {4, 5, 1, 2, 3};
    nums = {1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
    recoverRotatedSortedArray(nums);
    for(int i = 0; i < nums.size(); i++)
        printf("%d\t", nums[i]);
    return 0;
}

/**
恢复旋转排序数组

给定一个旋转排序数组，在原地恢复其排序。
您在真实的面试中是否遇到过这个题？
说明

什么是旋转数组？

    比如，原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4,1,2], [4,1,2,3]

样例

[4, 5, 1, 2, 3] -> [1, 2, 3, 4, 5]
*/
